Valf Function

private function Valf(a, varmodel)

function called by Simplex

Arguments

Type IntentOptional Attributes Name
real(kind=float), intent(in) :: a(:)
integer(kind=short), intent(in) :: varmodel

Return Value real


Variables

Type Visibility Attributes Name Initial
real(kind=float), public :: hoo
integer(kind=short), public :: i

Source Code

REAL FUNCTION Valf &
!
(a, varmodel)


IMPLICIT NONE

!Arguments with intent in:
REAL (KIND = float), INTENT (IN) :: a (:)
INTEGER (KIND = short), INTENT(IN) :: varmodel


!local declarations:
REAL (KIND = float) :: hoo
INTEGER (KIND = short) :: i

!---------------------------end of declarations--------------------------------

DO i = 1, ipara
    IF ( a (i) < parRangeMin (i) .OR. a (i) > parRangeMax (i) ) THEN
        Valf = 1.0E+15
        RETURN
    END IF
END DO
              
ieva = ieva + 1
SELECT CASE (ipara)
  CASE (1)
    range = a(1)
    anisotropyAngle = 0.0
    anisotropyRatio = 1.0
    partialSill = var
    nugget = 0.0
  CASE (2)
    IF (npep == 1) THEN
        range = a(1)
        nugget = a(2)
        partialSill = var - nugget 
        anisotropyAngle = 0.0
        anisotropyRatio = 1.0
    ELSE
        range = a(1)
        partialSill = a(2)
        nugget = 0.0
        anisotropyAngle = 0.0
        anisotropyRatio = 1.0
    END IF
  CASE (3)
    IF (npep == 1) THEN
        range = a(1)
        partialSill = a(2)
        nugget = a(3)
        anisotropyAngle = 0.0
        anisotropyRatio = 1.0
    ELSE
        range = a(1)
        anisotropyAngle = a(2)
        anisotropyRatio = a(3)
        nugget = 0.0
        partialSill = var
    END IF
  CASE (4)
    IF (npep == 1) THEN
        range = a(1)
        anisotropyAngle = a(2)
        anisotropyRatio = a(3)
        nugget = a(4)
        partialSill = var - nugget 
    ELSE
        range = a(1)
        anisotropyAngle = a(2)
        anisotropyRatio = a(3)
        partialSill = a(4)
        nugget = 0.0
    END IF
 CASE DEFAULT
    range = a(1)
    anisotropyAngle = a(2)
    anisotropyRatio = a(3)
    partialSill = a(4)
    nugget = a(5)
END SELECT

CALL Focompu (varmodel, hoo)

Valf = hoo

RETURN
END FUNCTION Valf